package projet.volleystat;

import java.util.ArrayList;

/**
 * @author Lameira Nelaupe Ferrand Fiore
 * @version 1.0 Creation de la classe joueur avec son nom, son prenom, sa
 *          nationalite ainsi que sa liste des equipes dans lesquelles il joue.
 */
public class Player {
	protected int id;
	protected String name;
	protected String firstname;
	protected String nationality;
	protected ArrayList<Team> team;

	/**
	 * Cela initialise un joueur
	 */
	public Player() {
		this.name = null;
		this.firstname = null;
		this.nationality = null;
		team = new ArrayList<Team>();
	}

	/**
	 * @param name
	 * @param firstname
	 * @param mationalite
	 *            Cela construit un joueur avec son nom, son prenom ainsi que sa
	 *            nationalite.
	 */
	public Player(String name, String firstname, String nationality) {
		this.name = name;
		this.firstname = firstname;
		this.nationality = nationality;
		team = new ArrayList<Team>();
	}

	/**
	 * @param id
	 * @param name
	 * @param firstname
	 * @param nationality
	 *            Cela construit un joueur avec son id, nom nom, son prenom,
	 *            ainsi que sa nationalite.
	 */
	public Player(int id, String name, String firstname, String nationality) {
		this.id = id;
		this.name = name;
		this.firstname = firstname;
		this.nationality = nationality;
		team = new ArrayList<Team>();
	}

	/**
	 * @return id Retourne l'id d'un joueur
	 */
	public int getId() {
		return id;
	}

	/**
	 * @param createId
	 *            Change l'id d'un joueur par idCreer
	 */
	public void setId(int createId) {
		this.id = createId;
	}

	/**
	 * @return name Renvoie le nom d'un joueur
	 */
	public String getName() {
		return name;
	}

	/**
	 * @param name
	 *            Change le nom d'un joueur par un autre nom
	 */
	public void setName(String name)

	{
		this.name = name;
	}

	/**
	 * @return firstname Retourne le prenom d'un joueur
	 */
	public String getFirstname() {
		return firstname;
	}

	/**
	 * @param firstname
	 *            Change le prenom d'un joueur par un autre
	 */
	public void setFirstname(String firstname) {
		this.firstname = firstname;
	}

	/**
	 * @return nationalite Renvoie la nationalite d'un joueur
	 */
	public String getNationality() {
		return nationality;
	}

	/**
	 * @param nationality
	 *            Change la nationalite d'un joueur par une autre.
	 */
	public void setNationality(String nationality) {
		this.nationality = nationality;
	}

	/**
	 * @return equipe Retourne la liste des equipes a laquelle le joueur
	 *         appartient.
	 */
	public ArrayList<Team> getTeam() {
		return team;
	}

	/**
	 * @param team
	 *            Ajoute une equipe dans la quelle le joueur joue.
	 */
	public void addTeam(Team team) {
		if (!this.team.contains(team)) {
			this.team.add(team);
		}
	}

	/**
	 * @param equipe
	 *            Supprime une equipe ou le joueur ne joue plus.
	 */
	public void removeTeam(Team equipe) {
		this.team.remove(equipe);
	}
}
